import xss from "xss"
import { updateUserProfile } from "@/api/user/index"
import { useUserStore } from "@/store/modules/user"
const userStore = useUserStore()
//日期处理
export default function splitTimeToV(time: string) {
    if (!time) return null
    const arr: string[] = time.split("-")
    return { year: arr[0], month: arr[1] }
}


//手机号脱敏
export function desensitizePhone(phone: string) {
    if (phone == null) return ""
    //phone 12346787621
    // ---> 123****7621
    return phone.replace(/(\d{3})\d{4}(\d{4})/g, "$1****$2");
}


//年月转换
export function YearMonthToString(obj: { year: number, month: number }) {
    return obj.year + "-" + obj.month
}


export function YearMonthToJSON(str: string) {
    //年月字符串显示 2003-09
    const arr: string[] = str.split("-")
    return { year: arr[0], month: arr[1] }
}


//计算年龄
export function getAge(birthday: string) {
    //一般年龄结构也是2003-09这样的
    const [year, month] = birthday.split("-");
    const date = new Date();
    const currentYear = date.getFullYear()
    const currentMonth = date.getMonth() + 1

    let age = Number(currentYear) - Number(year)
    if (Number(month) <= Number(currentMonth)) age++;
    return age
}


//处理文本，将输入框中的\n 转换为 html标签元素 <br>
export function TextToHTML(text: string) {
    if (text == null) return ""
    //其实关于文本这里还要去处理XSS攻击！！！
    const reg = /[\n]/g
    return text.replace(reg, "<br>")
}


// XSS白名单处理文本数据
export function XSS(text: string) {
    //后续这里可以做更多的处理
    return xss(text)
}


// 处理图片地址编码
export function todoPicPath(profile: string) {
    const defaultPic = "https://img.bosszhipin.com/static/file/2022/6b3qfnceby1672284446085.png"
    const basePic = "/api/images/userProfile/"
    if (profile == null) return defaultPic
    return basePic + profile
}


// 上传图片的功能点
export function changeFile({ target }: { target: any }) {
    const files = target?.files
    if (files && files.length > 0) {
        // 处理文件，例如访问第一个文件  
        const firstFile = files[0]; // firstFile 的类型是 File  
        // 你可以根据需要处理文件，例如上传到服务器等。
        updateUserProfile(firstFile).then(val => {
            //进行上传成功提示
            ElMessage({
                message: "图片上传成功！",
                type: 'success'
            })
            //进行一波更新操作
            userStore.getUserInfo()
        }).catch(err => {
            ElMessage({
                message: "图片上传失败",
                type: 'error'
            })
        })
    }
}


// 窗口滑动
export function slideTo(x: number = 0, y: number = 0) {
    window.scrollTo(x, y)
}